ef4293a993014379c54e2399e692c6387d80f0ca,core/src/main/java/org/elasticsearch/plugins/InstallPluginCommand.java,InstallPluginCommand,installConfig,#PluginInfo#Path#Path#,439

Before Change


        // create the plugin's config dir "if necessary"
        Files.createDirectories(destConfigDir);

        final PosixFileAttributes destConfigDirAttributes =
                Files.getFileAttributeView(destConfigDir.getParent(), PosixFileAttributeView.class).readAttributes();
        setOwnerGroup(destConfigDir, destConfigDirAttributes);

        try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpConfigDir)) {
            for (Path srcFile : stream) {
                if (Files.isDirectory(srcFile)) {
                    throw new UserError(ExitCodes.DATA_ERROR, "Directories not allowed in config dir for plugin " + info.getName());
                }

                Path destFile = destConfigDir.resolve(tmpConfigDir.relativize(srcFile));
                if (Files.exists(destFile) == false) {
                    Files.copy(srcFile, destFile);
                    setOwnerGroup(destFile, destConfigDirAttributes);
                }
            }
        }

After Change



        final PosixFileAttributes destConfigDirAttributes;
        if (Constants.WINDOWS) {
            destConfigDirAttributes = null;
        } else {
            destConfigDirAttributes =
                    Files.getFileAttributeView(destConfigDir.getParent(), PosixFileAttributeView.class).readAttributes();
            setOwnerGroup(destConfigDir, destConfigDirAttributes);

        }

        try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpConfigDir)) {
            for (Path srcFile : stream) {
                if (Files.isDirectory(srcFile)) {
                    throw new UserError(ExitCodes.DATA_ERROR, "Directories not allowed in config dir for plugin " + info.getName());
                }

                Path destFile = destConfigDir.resolve(tmpConfigDir.relativize(srcFile));
                if (Files.exists(destFile) == false) {
                    Files.copy(srcFile, destFile);
                    if (Constants.WINDOWS == false) {
                        setOwnerGroup(destFile, destConfigDirAttributes);
                    }
                }
            }